1. Field of the Invention
The invention relates generally to communication protocols and more specifically relates to improvements to allow exchange of administrative information when using a communication protocol with limited features for such exchanges.
2. Discussion of Related Art
A wide variety of communication media and protocols are in use for communicating between two devices. For example, in the context of storage systems, storage controllers or host systems often communicate with storage devices and systems using parallel communication media and protocols such as parallel SCSI and parallel Advanced Technology Attachment (PATA). Or, for example, Serial Attached SCSI (SAS), Fibre Channel (FC), and Serial Advanced Technology Attachment (SATA) may be used in such storage system communication applications.
In such storage applications, it is common to send read and write commands from a host/controller to a storage device or system to retrieve previously stored data from storage and to send new write data to storage. Such commands often require a number of parameters be supplied for the read/write command. For example, a location from which data is to be read or a location to which data is to be written may be provided as a parameter of the read/write command. Or, for example, the length of data to be read or written may be provided as a parameter of the command.
Many such protocols were designed for particular expected parameters to be provided as part of “standard” read and write commands. Often such protocols are designed to allow for some expansion of the number or types of parameters that may be provided with a command. However, as the design and capabilities of new devices advance and develop over time, new parameters may be required in the exchange of commands and data. For example, PATA communication systems were designed with specific parameters common to earlier storage devices. The protocol generally provides for parameter values to be provided corresponding to particular “registers” of the storage device to be accessed (e.g., a “register file” is defined where particular expected parameters are programmed by commands of the PATA protocol addressing particular registers of the storage device. SATA protocols built from that legacy and transmit similar commands and associated parameters over serial communication media rather than parallel bus structures.
PATA and SATA are exemplary of communication protocols where the number and types of parameters that may be provided with read/write commands are limited—limited by the register file definitions that first arose with early designs of storage devices. Some newer storage devices may require additional information to effectuate desired read or write operations. For example, some newer solid-state drives (SSDs using flash memory components for storage of data in a structure analogous to rotating magnetic/optical disk drives) may require additional parameters for read/write command processing than are available in the SATA (or PATA) protocols. In general, SSDs use a mapping structure to map logical block addresses (LBAs) for read/write commands into corresponding physical block addresses (PBAs) identifying physical storage locations in the flash memory components of the SSD. The mapping information in some SSDs is stored in a memory component within the SSD (e.g., a non-volatile RAM component or in a flash memory component).
The mapping structures used can be complex due to the nature of flash memory controllers and the design of SSDs using a plurality of flash memory chips. SSD designs may organize the flash memory chips in various architectures to achieve better performance through parallelism in access to various combinations of flash memory chips. These complexities lead to related complexity of the mapping tables and algorithms. As the capacity of SSDs has grown in recent designs, these mapping structures may be quite large and the algorithms for use of the mapping structures can be quite complex. These complexities tend to increase the costs and complexity of SSD devices.
Some newer SSD designs offload responsibility for mapping algorithms and related structures to attached host system/controllers to reduce the cost and complexity of the SSD device per se. In such newer SSD designs with offloaded mapping responsibilities, read and write commands from the host/controller to the SSD may require additional parameters. For example, the host/controller, having performed the requisite mapping from LBA to PBA, may be required to transmit both the LBA and the PBA for data to be read from or written to the newer SSD.
SATA protocols used with such newer SSDs present a problem in that the SATA protocol has strictly defined limits on the number of parameters that may be encoded in a read or write command. Other devices may give rise to similar problems for SATA protocols. Further, other protocols that have limited or no expandability for providing parameters to be associated with commands transferred from the host/controller to a device may present similar problems for some devices. Thus it is an ongoing challenge to efficiently provide additional parameters for commands from a host/controller to a device where the protocol employed has limited expandability to provide additional parameters.
Further, some protocols such as SATA are limited in their ability to exchange status/configuration data (e.g., “administrative information”) between devices. The protocol may provide only limited commands for such administrative information exchanges and the use of the defined, limited commands may impose performance problems on exchanges between the devices. Thus, it is also an ongoing challenge to improve the exchange of administrative information (e.g., status and/or configuration information) between devices in protocols that impose limitations for the exchange of administrative information such as the SATA protocol.